using System.Text.Json.Serialization;

namespace Eamon.MeituanDotnetSDK.model.ddzh.tuangou.tuangouReceiptQuerylistbydate
{
    /// <summary>
    /// 验券记录基础结果
    /// </summary>
    public class ReceiptQueryBaseResult
    {
        /// <summary>
        /// 券码
        /// </summary>
        [JsonPropertyName("receiptCode")]
        public string ReceiptCode { get; set; }

        /// <summary>
        /// 套餐ID
        /// </summary>
        [JsonPropertyName("dealId")]
        public long? DealId { get; set; }

        /// <summary>
        /// 团购ID
        /// </summary>
        [JsonPropertyName("dealGroupId")]
        public long? DealGroupId { get; set; }

        /// <summary>
        /// 商品名称
        /// </summary>
        [JsonPropertyName("dealTitle")]
        public string DealTitle { get; set; }

        /// <summary>
        /// 商品售卖价格
        /// </summary>
        [JsonPropertyName("dealPrice")]
        public double? DealPrice { get; set; }

        /// <summary>
        /// 商品类型
        /// </summary>
        [JsonPropertyName("productType")]
        public int? ProductType { get; set; }

        /// <summary>
        /// 商品消费码
        /// </summary>
        [JsonPropertyName("productItemId")]
        public long? ProductItemId { get; set; }

        /// <summary>
        /// 商品市场价
        /// </summary>
        [JsonPropertyName("dealMarketPrice")]
        public double? DealMarketPrice { get; set; }

        /// <summary>
        /// 验证账号/撤销核销账号
        /// </summary>
        [JsonPropertyName("verifyAccount")]
        public string VerifyAccount { get; set; }

        /// <summary>
        /// 验证方式
        /// </summary>
        [JsonPropertyName("verifyChannel")]
        public string VerifyChannel { get; set; }

        /// <summary>
        /// 验券时间/撤销验券时间
        /// </summary>
        [JsonPropertyName("verifyTime")]
        public string VerifyTime { get; set; }

        /// <summary>
        /// 业务类型
        /// </summary>
        [JsonPropertyName("bizType")]
        public int? BizType { get; set; }

        /// <summary>
        /// 流水号
        /// </summary>
        [JsonPropertyName("flowId")]
        public string FlowId { get; set; }

        /// <summary>
        /// 退款状态
        /// </summary>
        [JsonPropertyName("refundStatus")]
        public int? RefundStatus { get; set; }

        public override string ToString()
        {
            return $"ReceiptQueryBaseResult{{ReceiptCode={ReceiptCode}, DealId={DealId}, DealGroupId={DealGroupId}, DealTitle={DealTitle}, DealPrice={DealPrice}, ProductType={ProductType}, ProductItemId={ProductItemId}, DealMarketPrice={DealMarketPrice}, VerifyAccount={VerifyAccount}, VerifyChannel={VerifyChannel}, VerifyTime={VerifyTime}, BizType={BizType}, FlowId={FlowId}, RefundStatus={RefundStatus}}}";
        }
    }
}
